iT邦幫忙

2024 iThome 鐵人賽

DAY 23
0

GitHub Copilot Chat 中的提示建構

提示建構可以用來組合使用者的問題與想表達的意圖。不知道讀者在使用 GitHub Copilot Chat 過程中,有沒有經歷過來回修改數次後,才得到滿意的建議。提示建構中包含 聊天參與者、斜線命令與聊天變數,可以幫助使用者限縮問題範圍 (如 程式碼問題 或 Visual Studio Code 問題)、表達意圖 (說明程式碼、修正問題、產生單元測試案例或產生專案文件) 或選擇前後文來源 (從 目前已選取的程式碼 或 終端機內容 作為前後文)…等,確保使用者能明確提供精準範圍與意圖的提示,讓 GitHub Copilot Chat 會給予更好的回答。

聊天參與者
使用者可以在聊天訊息中使用 @ 符號提及聊天參與者。 聊天參與者就像具有特定專長的專家,可以協助您解决問題。目前 Copilot Chat 支援以下內建聊天參與者:

@workspace:與工作區中有關於的問題 (含程式碼的内容),可以協助使用者找到相關的檔案或類別。
@vscode: Visual Studio Code 編輯器本身中的命令和功能,並可以協助使用者找到並使用它們。
@terminal:關於整合式終端及其內容,協助使用者使用它們或回答相關問題。
@GitHub:可以詢問關於 GitHub 問題,包含網路搜尋、程式碼搜尋或企業知識基礎

https://ithelp.ithome.com.tw/upload/images/20241007/20091494JXc7ehMifV.png

 
 

斜線命令
在聊天視窗中使用指令斜線命令可以快速設定工作意圖。藉此讓使用者的問題更為明確以取得更好的答案。例如,我們想要「使用 ASP.NET 5 MVC C# 建立新工作區」以表示使用者想要建立新專案,如果以「@workspace /new ASP.NET 5 MVC C# 建立新工作區」方式給予提示,會比較明確、簡潔的且較為節省打字時間。

https://ithelp.ithome.com.tw/upload/images/20241007/20091494mt9hrFruDT.png

下表為斜線命令與說明:

命令 使用方式 聊天視窗 內嵌聊天
/doc 為指定或選取的程式碼新增註釋。例如:- /doc DeleteBasketAsync method in BasketService.cs- 選取想要程式碼並輸入 /doc Yes Yes
/explain 取得程式碼說明。例如:- /explain the AddItemToBasket method in BasketService.cs- 選取想要程式碼並輸入 /explain Yes Yes
/fix 建議修正所選程式碼中的問題。例如:- /fix the SetQuantities method in BasketService.cs- 選取想要程式碼並輸入 /fix Yes Yes
/generate 產生程式碼以回答指定的問題。範例: /generate code to add two numbers in Calculator.cs Yes Yes
/help 取得關於使用 Copilot 聊天的説明。範例: /help Yes Yes
/optimize 分析並改善所選程式碼的執行時間。範例:- /optimize the AddItemToBasket method in BasketService.cs- 選取想要程式碼並輸入 /optimize Yes Yes
/tests 為選取的程式碼建立單元測試。例如:選取想要程式碼並輸入 /tests using XUnit Framework Yes Yes

 
 

聊天變數
使用 GitHub Copilot 過程中,使用者可以提供特定聊天變數 # 符號,讓聊天提示中包含的内容更爲具體。 例如,#selection 變數包含使用中編輯器中的文字選取。如我們前一篇文章 GitHub Copilot Chat - 基礎說明 內使用的提示 「我如何更新這段程式碼,確保不會有重複的數字」「在 #selection 確保不會有重複的數字」會將聊天要求聚焦在所選程式碼片段上。

https://ithelp.ithome.com.tw/upload/images/20241007/20091494yPvy4mw8Eh.png

內建聊天變數的範例如下:

  • #selection:使用中編輯器中可見的原始程式碼。
  • #editor:使用中編輯器中的目前選取。 編輯器內容隱含地包含在 [聊天] 檢視内容中。
  • #file:在工作區中包含指定檔案作為聊天提示的内容。
  • #terminalSelection:使用中終端機的選取。
  • #terminalLastCommand:使用中終端機的最後一個執行命令。

使用  #file 須注意檔案大小,若檔案過大可能會發生無法放入視窗、不會將完整檔案內容納入前後文 (可能只取用類別、方法名稱而不包含實作) 而影響回答內容,甚至有可能造成編輯器或 GitHub Copilot 異常而需要重啟。

 
 
 

後記

一般來說,這三種建構提示可能混合使用,已降低使用者多次修改提示的情況發生,主要原因在於建構提示可以明確的表達使用者意圖讓 GitHub Copilot 理解。後續幾篇文章,我們將開始介紹各種使用範例,讀者不妨可以參考參考。


上一篇
GitHub Copilot Chat - 基礎說明
下一篇
GitHub Copilot 使用案例: 格式轉換、修正與例外處理
系列文
現代化應用程式開發與維運 - GitHub Codespace 與 GitHub Copilot30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言